home *** CD-ROM | disk | FTP | other *** search
- Epson8pinG
- PRG formatted GEOS file V1.0
- Star NX-10
- OP V2.0 or higherDER.REL
- +!SHELLZERO
- BLASTER'S CONVERTER V2.5
- +#EPSON8PING
- PrintASCII.rel
- Write Image V2.0
- geoWrite V2.1
- .Graphics portion of generic Shell Printer Driver. Read Shell easy docs for info.
- @CardsWid
- e =80 ;A card is 8 pixels wide. Maximum is 80.
- CardsLon
- g =94 ;A card is 8 pixels high. Normal is 94.
- .include ShellZero ;This defines fixed zero-page locations.
- @GraphicB
- .block 1 ;This driver needs just one more byte.
- .psect
- @InitForP
- rint: ;Start program here.
- rts ;No dialog box used so just return.
- @PrintPag
- ldx #mBeginPage ;Send message at beginning of each
- jsr SendMessage ;printed page (see next page for messages).
- 100$ jsr DoScan ;Scan head across page while printing.
- lda #8 ;Since head has 8 pins in graphics mode,
- jsr MoveDown ;move down 8 pixels.
- lda PrintMode ;Check this byte to see if there is more to
- cmp #$3e ;print on this page.
- bcs 100$ ;Branch if there is more to print.
- ldx #mEndPage ;Now send message at bottom of page.
- jsr SendMessage
- @DoScan
- : ;Prints one head-scan across the page.
- ldx #mBeginScan ;Print code sequence to print 640 graphic
- jsr SendMessage ;dots across the page in one scan.
- ldy #1 ;Open the Window starting on card (column)
- 100$ jsr OpenWindow ;one, at the left-hand edge of the page.
- 200$ jsr DoGraphicByte ;Print one vertical byte (8 pixels high).
- jsr ShiftPixels ;Shift the pixels in the Window to the left.
- bne 200$ ;Repeat for 8 pixels (one card or column).
- ldy ActiveColumn ;See if the column number has progressed
- iny ;all the way across the page past column
- cpy #81 ;80.
- bcc 100$ ;Repeat if column number is less than 81.
- ldx #mEndScan ;Send message to end the head scan.
- jsr SendMessage
- @DoGraphi
- cByte: ;Assemble 8 vertical pixels into a byte.
- ldx #0 ;Start with top pixel.
- 100$ lda Window+24,x ;This is the middle column of the Window.
- rol a ;Get the left-hand pixel.
- rol GraphicByte ;Shift it into the graphic byte for the printer.
- inx ;Move down one pixel in the Window.
- cpx #8 ;See if 8 pixels have been assembled.
- bcc 100$ ;Branch if not.
- lda GraphicByte ;Now get the assembled byte and give it
- jsr SendByte ;to the printer.
- @ColorFil
- ters:
- .word $0001,$0000 ;black on white.
- @MessageO
- ffset:
- .byte <(m00-messages)
- .byte <(m01-messages)
- .byte <(m02-messages)
- .byte <(m03-messages)
- .byte <(m04-messages)
- .byte <(m05-messag
- @ColorFil
- ters:
- .word $0001,$0000 ;black on white.
- @MessageO
- ffset:
- .byte <(m00-messages)
- .byte <(m01-messages)
- .byte <(m02-messages)
- .byte <(m03-messages)
- .byte <(m04-messages)
- .byte <(m05-messages)
- .byte <(m06-messages)
- .byte <(m07-messages)
- @MessageL
- ength:
- .byte <(m01-m00)
- .byte <(m02-m01)
- .byte <(m03-m02)
- .byte <(m04-m03)
- .byte <(m05-m04)
- .byte <(m06-m05)
- .byte <(m07-m06)
- .byte <(m08-m07)
- @messages
- : ;Printer code sequences (aka "messages").
- @mBeginPa
- ge =0 ;Message to send at top of each page.
- m00: .byte ESC,"@" ;Reset printer (for top of form).
- @mBeginSc
- an =1 ;Send to start a graphic scan of 640 bytes.
- m01: .byte ESC,"*",4 ;Code for 80 dpi with
- .word 640 ;640 bytes.
- @mEndScan
- =2 ;Send at end of graphic scan.
- m02: .byte CR,ESC,"J",24 ;Carriage Return and Line Feed 24/216 inches.
- @mEndPage
- =3 ;Send at bottom of page.
- m03: .byte FF ;Form Feed to top of next page.
- @mBeginTe
- xt =4 ;Send at top of page in DRAFT and NLQ.
- m04: .byte ESC,"@" ;Reset printer.
- @mEndText
- =5 ;Send at bottom
- of page in DRAFT and NLQ.
- m05: .byte FF
- ;Form Feed to top of next page.
- @mTextLin
- eFeed =6 ;Send Line Feed in DRAFT and NLQ.
- m06: .byte CR,LF ;Carriage Return and Line Feed.
- @mSetNLQ
- =7 ;Send code to switch printer to NLQ font.
- m07: .byte ESC,"x",1 ;NLQ on.
- m08: ;One more label needed to calculate length.
- HEpson 8-pin 80 dpi driver
- Page: PAGE
- Printed on: DATE At: TIME File: Epson8pinG
- ----------------------------------------------------------------------------------------------
-